package com.sale.system.service;


import cn.dev33.satoken.annotation.SaCheckPermission;
import com.sale.common.core.domain.R;
import com.sale.common.mybatis.core.page.PageQuery;
import com.sale.common.mybatis.core.page.TableDataInfo;
import com.sale.system.domain.PrintDictionary;
import com.sale.system.domain.SysPrintTemplate;
import com.sale.system.domain.dto.ConfigContentDto;
import com.sale.system.domain.dto.SysPrintTemplateDto;
import com.sale.system.domain.dto.SysTagSummaryDto;
import com.sale.system.domain.vo.ConfigContentVo;
import com.sale.system.domain.vo.DefaultValueVo;
import com.sale.system.domain.vo.SysPrintTemplateVo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;

/**
 * @Author hl
 **/
public interface ISysPrintTemplateService {

    /**
     * 查询打印
     *
     * @param sysPrintTemplateVo
     * @return
     */
    TableDataInfo<SysPrintTemplateDto> selectPrintTemplateList(SysPrintTemplateVo sysPrintTemplateVo, PageQuery pageQuery);

    /**
     * 新增打印模板
     *
     * @param sysPrintTemplate
     * @return
     */
    int insertPrintTemplate(SysPrintTemplate sysPrintTemplate);

    /**
     * 配置内容
     */
    boolean configContent(ConfigContentVo configContentVo);

    /**
     * 配置内容查看
     */
    ConfigContentDto getView(Long id);

    /**
     * 修改默认状态
     * @return
     */
    boolean updateDefaultValue(DefaultValueVo defaultValueVo);

    /**
     * 查询单个打印信息
     *
     * @param printId
     * @return
     */
    SysPrintTemplateDto selectPrintTemplateById(long printId);

    /**
     * 删除打印信息
     *
     * @param printId
     * @return
     */
    int deletePrintTemplate(String printId);

    /**
     * 修改打印信息
     *
     * @param sysPrintTemplate
     * @return
     */
    int updatePrintTemplateEdit(SysPrintTemplate sysPrintTemplate);

    /**
     * 返回JSON
     *
     * @param printId
     * @return
     */
    String getPrintTemplateConfig(long printId);

    /**
     * 获取模板字段
     */
    List<SysTagSummaryDto> getPrintTemplateDetails(long printCorrelation);

    /**
     * 通过模板类型查对应的模板列表
     */
    List<SysPrintTemplateDto> selectList(int type);

    /**
     * 通过模板id新增字段
     */
    boolean insertPrintDictionary(List<PrintDictionary> list);

    List<SysPrintTemplateDto> listNotPage(SysPrintTemplateVo sysPrintTemplateVo);
}
